package com.example.demo.manhua;

/**
 * @ClassName : Mi
 * @Description : 实现一个方法，来判断一个正整数是否是2的整数次幂（如16是2的4次方，返回 true；18不是2的整数次幂，
 * 则返回false）。要求性能尽可能高。
 * 目前算法的时间复杂度仍然是O(logn)，可以使用进制的方法
 * @Author : wind
 * @Date: 2021-01-28 14:55
 * @Version 1.0
 */
public class Mi {
    static boolean flag = true;

    public static void main(String[] args) {
        System.out.println(test(18));
        System.out.println(1&2);
    }

    static boolean test(int num) {
        int temp = 1;
        while (num >= temp) {
            if (num == temp) {
                return true;
            }
            if (num % 2 == 0) {
                num = num >> 1;
            }
            if (num % 2 == 1) {
                return false;
            }
        }
        return false;
    }
}
